#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
快速数据源测试脚本
用于快速诊断数据源问题

适合日常使用和问题排查
如需全面功能验证，请使用 comprehensive_test.py
"""

import sys
import os

# 添加src目录到Python路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))

from src.utils import load_config, setup_logging
from src.data_sources import DataSourceManager


def quick_test():
    """快速测试所有数据源"""
    print("🚀 快速数据源测试")
    print("=" * 40)
    
    try:
        # 加载配置
        config = load_config()
        logger = setup_logging(config)
        
        # 创建数据源管理器
        source_manager = DataSourceManager(config)
        
        # 测试关键词
        test_keyword = "朋友圈a"
        print(f"📝 测试关键词: {test_keyword}")
        print()
        
        # 获取所有启用的数据源
        enabled_sources = source_manager.get_enabled_sources()
        print(f"📊 发现 {len(enabled_sources)} 个启用的数据源:")
        
        # 快速测试每个数据源
        results = {}
        for source in enabled_sources:
            print(f"\n🔍 测试 {source.name}...")
            try:
                keywords = source.collect_keywords(test_keyword)
                results[source.name] = len(keywords)
                status = "✅" if keywords else "⚠️"
                print(f"   {status} 获取到 {len(keywords)} 个关键词")
                if keywords:
                    print(f"   示例: {keywords[:3]}")
            except Exception as e:
                results[source.name] = f"错误: {e}"
                print(f"   ❌ 失败: {e}")
        
        # 显示测试结果摘要
        print("\n" + "=" * 40)
        print("📋 测试结果摘要:")
        for source_name, result in results.items():
            if isinstance(result, int):
                print(f"  {source_name}: {result} 个关键词")
            else:
                print(f"  {source_name}: {result}")
        
        # 分析问题
        print("\n🔍 问题分析:")
        working_sources = [name for name, result in results.items() if isinstance(result, int) and result > 0]
        failed_sources = [name for name, result in results.items() if isinstance(result, str)]
        empty_sources = [name for name, result in results.items() if isinstance(result, int) and result == 0]
        
        if working_sources:
            print(f"  ✅ 正常工作的数据源: {', '.join(working_sources)}")
        
        if failed_sources:
            print(f"  ❌ 失败的数据源: {', '.join(failed_sources)}")
        
        if empty_sources:
            print(f"  ⚠️  未获取到关键词的数据源: {', '.join(empty_sources)}")
        
        # 给出建议
        if failed_sources or empty_sources:
            print("\n💡 建议:")
            if failed_sources:
                print("  - 检查网络连接和防火墙设置")
                print("  - 查看日志文件获取详细错误信息")
                print("  - 考虑增加延迟时间")
            if empty_sources:
                print("  - 检查网站是否更改了页面结构")
                print("  - 验证选择器是否仍然有效")
                print("  - 考虑网站的反爬虫机制")
        
        print("\n✅ 快速测试完成！")
        
        # 引导用户选择合适的测试工具
        print("\n💡 测试工具选择建议:")
        print("  - 日常问题诊断 → python quick_test.py (当前)")
        print("  - 全面功能验证 → python comprehensive_test.py")
        print("  - 运行完整演示 → python demo.py")
        
    except Exception as e:
        print(f"\n❌ 测试失败: {e}")
        import traceback
        traceback.print_exc()


if __name__ == "__main__":
    quick_test()
